package web.util;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
/**用于文件操作
 * <pre>
 * {@link #create(String, String, InputStream)} 创建一个文件
 * {@link #delete(String)} 删除一个文件
 * </pre>
 * @author 乐渊
 * @version 1.0
 * 
 * */
public class FileOperator {
	
	private static Log log = new Log();
	
	/**创建一个的文件,重名覆盖
	 * @param fileName 文件名
	 * @param filePath 文件所在目录
	 * @param is 输入流
	 * @return boolean 是否成功
	 * */
	public static boolean create(String fileName,String filePath,InputStream is) {
		return create(fileName,filePath,is,false);
	}
	
	/**创建一个不重名的文件
	 * @param fileName 文件名
	 * @param filePath 文件所在目录
	 * @param is 输入流
	 * @return boolean 是否成功
	 * */
	public static boolean create(String fileName,String filePath,InputStream is,boolean repalceFalg){
		File dir = new File(filePath);
		
		if(!dir.exists()){
			dir.mkdirs();
		}
		
		File file = new File(filePath,fileName);
		FileOutputStream fos = null;
		try {
			if(file.exists()){
				if(repalceFalg) {
					//重名删除
					file.delete();
				}else {
					log.setLog(Constant._505+"{"+filePath+"}");
					return false;
				}
			}else{
				file.createNewFile();
			}
			
			fos = new FileOutputStream(file);
			int len = -1;
			byte[] b = new byte[4096];
			while((len = is.read(b))>0)
				fos.write(b, 0, len);
			fos.close();
			is.close();
		} catch (IOException e) {
			e.printStackTrace();
			return false;
		}
		log.setLog("# 文件保存成功！"+"{"+filePath+"}");
		return true;
	}
	
	/**删除一个存在的文件
	 * @param filePath 文件绝对路径
	 * @return boolean 是否成功
	 * */
	public static boolean delete(String filePath){
		File file = new File(filePath);
		if(file.exists()){
			file.delete();
			log.setLog("# 文件删除成功！"+"{"+filePath+"}");
		}else{
			log.setLog(Constant._506+"{"+filePath+"}");
			return false;
		}
		return true;
	}
}
